// 一个全新的、非常简单的app.js文件，用于测试页面加载

console.log('极简版app.js已加载');

// 记录页面加载时间
const pageLoadTime = Date.now();

// 优先初始化移动端导航功能
function initMobileNavigation() {
  console.log('移动端导航优先初始化开始');
  
  // 检查是否是移动设备
  const isMobile = window.innerWidth <= 992;
  if (!isMobile) {
    console.log('非移动设备，跳过移动端导航优先初始化');
    return;
  }
  
  // 检查导航栏DOM是否已加载，添加轮询机制
  const checkNavbarInterval = setInterval(function() {
    const navToggle = document.querySelector('.nav-toggle');
    const navLinks = document.querySelector('.nav-links');
    
    if (navToggle && navLinks) {
      clearInterval(checkNavbarInterval);
      console.log('检测到导航栏DOM已加载，开始初始化');
      
      // 动态加载mobile-nav.js脚本
      const script = document.createElement('script');
      script.src = window.location.pathname.includes('/pages/') ? '../js/mobile-nav.js' : 'js/mobile-nav.js';
      script.onload = function() {
        console.log('mobile-nav.js脚本加载成功');
        
        try {
          // 检查MobileNav类是否存在
          if (typeof MobileNav !== 'undefined') {
            console.log('MobileNav类存在，创建实例');
            const mobileNav = new MobileNav();
            const basePath = window.location.pathname.includes('/pages/') ? '../' : '';
            mobileNav.init(basePath);
            console.log('移动端导航初始化成功');
          } else {
            console.warn('MobileNav类不存在，使用直接方式初始化');
            directMobileNavInit(navToggle, navLinks);
          }
        } catch (e) {
          console.error('MobileNav初始化失败:', e);
          directMobileNavInit(navToggle, navLinks);
        }
      };
      
      script.onerror = function() {
        console.error('mobile-nav.js脚本加载失败，直接初始化');
        directMobileNavInit(navToggle, navLinks);
      };
      
      document.head.appendChild(script);
    } else {
      console.log('导航栏DOM尚未加载，等待...');
    }
  }, 100); // 每100毫秒检查一次
  
  // 设置超时，避免无限轮询
  setTimeout(function() {
    clearInterval(checkNavbarInterval);
    console.log('移动端导航初始化超时检查');
    
    const navToggle = document.querySelector('.nav-toggle');
    const navLinks = document.querySelector('.nav-links');
    
    if (navToggle && navLinks) {
      console.log('超时后检测到导航栏DOM已加载，直接初始化');
      directMobileNavInit(navToggle, navLinks);
    } else {
      console.warn('超时后仍未检测到导航栏DOM');
    }
  }, 3000); // 3秒超时
}

// 直接初始化移动端导航
function directMobileNavInit(navToggle, navLinks) {
  try {
    console.log('开始直接初始化移动端导航');
    
    // 为切换按钮添加点击事件
    navToggle.addEventListener('click', function() {
      console.log('导航切换按钮被点击');
      // 切换导航链接的显示/隐藏
      navLinks.classList.toggle('active');
      
      // 切换汉堡图标（如果有）
      const icon = navToggle.querySelector('i');
      if (icon) {
        if (navLinks.classList.contains('active')) {
          icon.classList.remove('fa-bars');
          icon.classList.add('fa-times');
        } else {
          icon.classList.remove('fa-times');
          icon.classList.add('fa-bars');
        }
      }
    });
    
    console.log('直接初始化移动端导航完成');
  } catch (e) {
    console.error('直接初始化移动端导航时出错:', e);
  }
}

// 立即执行移动端导航初始化
initMobileNavigation();

// 初始化成功案例手风琴效果
function initSuccessCasesAccordion() {
  console.log('开始初始化成功案例手风琴效果');
  const accordionItems = document.querySelectorAll('.accordion-item');
  
  console.log('找到的手风琴项数量:', accordionItems.length);
  
  if (accordionItems.length === 0) {
      console.log('没有找到手风琴项，退出初始化');
      return; // 如果没有手风琴项，则退出
  }
  
  // 清除所有内联样式，让CSS类来控制动画
  accordionItems.forEach(item => {
      const content = item.querySelector('.accordion-content');
      if (content) {
          content.style.maxWidth = '';
          content.style.maxHeight = '';
      }
  });
  
  // 响应式检测函数 - 在移动设备上展开所有案例
  function handleResponsiveAccordion() {
    const isMobile = window.innerWidth <= 992; // 992px是常见的响应式断点
    
    if (isMobile) {
      console.log('移动设备视图，展开所有手风琴项');
      accordionItems.forEach(item => item.classList.add('active'));
    } else {
      console.log('桌面视图，确保第一个手风琴项始终激活');
      // 先移除所有active类
      accordionItems.forEach(item => item.classList.remove('active'));
      // 然后只给第一个项添加active类
      if (accordionItems.length > 0) {
        accordionItems[0].classList.add('active');
      }
    }
  }
  
  // 初始化时执行一次
  handleResponsiveAccordion();
  
  // 添加窗口大小变化监听，但添加防抖逻辑避免频繁触发
  let resizeTimeout;
  window.addEventListener('resize', () => {
    clearTimeout(resizeTimeout);
    resizeTimeout = setTimeout(() => {
      // 仅在页面加载完成2秒后才允许窗口大小变化影响手风琴状态
      if (Date.now() - pageLoadTime > 2000) {
        handleResponsiveAccordion();
      }
    }, 250);
  });
  
  accordionItems.forEach((item, index) => {
      const header = item.querySelector('.accordion-header');
      
      console.log(`处理手风琴项 ${index+1}`);
      
      // 点击事件处理
      header.addEventListener('click', () => {
          // 只在桌面视图下才执行折叠/展开操作
          if (window.innerWidth > 992) {
              console.log(`手风琴项 ${index+1} 被点击`);
               
              // 检查当前项是否已激活
              const isCurrentlyActive = item.classList.contains('active');
              
              // 对于第一个项，特殊处理：不允许在桌面视图下关闭它
              if (index === 0) {
                console.log('点击的是第一个手风琴项，在桌面视图下不允许关闭');
                return; // 直接返回，不执行任何操作
              }
                
              // 先关闭所有项（包括当前项）
              accordionItems.forEach(otherItem => {
                  otherItem.classList.remove('active');
              });
                
              // 如果当前项不是已激活状态，则打开它
              if (!isCurrentlyActive) {
                  console.log(`切换到新的手风琴项 ${index+1}`);
                    
                  // 获取锚点（在激活新案例之前）
                  if (item.id) {
                      const targetHash = '#' + item.id;
                      console.log(`获取锚点: ${targetHash}`);
                        
                      // 使用History API更新URL但不触发滚动
                      if (window.history && window.history.replaceState) {
                          window.history.replaceState(null, null, targetHash);
                      }
                  }
                    
                  // 延迟一小段时间后再打开新的案例，确保收缩动画完成
                  setTimeout(() => {
                      console.log(`打开手风琴项 ${index+1}`);
                      item.classList.add('active');
                  }, 100);
              } else {
                  // 如果点击的是当前激活的非第一个项，则默认回到第一个项
                  console.log(`关闭手风琴项 ${index+1}，回到第一个项`);
                  setTimeout(() => {
                      accordionItems[0].classList.add('active');
                  }, 100);
              }
          }
      });
  });
  
  // 处理URL中的锚点
  function handleHash() {
      const hash = window.location.hash;
      const isMobile = window.innerWidth <= 992;
      
      if (hash) {
          const targetElement = document.querySelector(hash);
          if (targetElement && targetElement.classList.contains('accordion-item')) {
              // 激活目标手风琴项
              if (!isMobile) { // 只在非移动端视图下才进行单项激活
                  accordionItems.forEach(item => item.classList.remove('active'));
                  targetElement.classList.add('active');
              } else {
                  console.log('移动端视图，保持所有案例展开状态，同时高亮目标项');
                  targetElement.classList.add('active'); // 确保目标项也处于激活状态
              }
               
              // 取消置顶定位，不进行滚动操作
          }
      } else {
          // 如果没有锚点，根据设备类型决定显示方式
          const isMobile = window.innerWidth <= 992;
          if (isMobile) {
              console.log('移动端视图，默认打开全部案例');
              accordionItems.forEach(item => item.classList.add('active'));
          } else {
              console.log('桌面视图，没有找到锚点，确保第一个手风琴项激活');
              accordionItems.forEach(item => item.classList.remove('active'));
              if (accordionItems.length > 0) {
                  accordionItems[0].classList.add('active');
              }
          }
      }
  }
  
  // 初始检查URL中的锚点
  handleHash();
  
  // 额外确保：在初始化完成后再次处理手风琴项状态
  setTimeout(function() {
    const isMobile = window.innerWidth <= 992;
    if (isMobile) {
      console.log('额外确保：移动端视图，保持所有案例展开状态');
      accordionItems.forEach(item => item.classList.add('active'));
    } else {
      console.log('额外确保：桌面视图，确保第一个手风琴项激活');
      if (accordionItems.length > 0) {
        accordionItems.forEach(item => item.classList.remove('active'));
        accordionItems[0].classList.add('active');
      }
    }
  }, 500);
  
  // 监听hashchange事件
  window.addEventListener('hashchange', handleHash);
}

// 确保DOM加载完成
if (document.readyState === 'loading') {
  document.addEventListener('DOMContentLoaded', initApp);
} else {
  initApp();
}

function initApp() {
  console.log('DOM已加载，开始初始化应用');
  
  // 确定当前页面的基础路径
  const basePath = window.location.pathname.includes('/pages/') ? '../' : '';
  console.log('基础路径:', basePath);
  
  // 简单的导航栏和页脚加载函数
  loadComponents(basePath);
  
  // 加载并初始化侧边按钮组
  function loadSideActions() {
    const script = document.createElement('script');
    script.src = `${basePath}js/side-actions.js`;
    script.onload = function() {
      console.log('侧边按钮组脚本加载成功');
      if (window.initSideActions) {
        window.initSideActions();
      }
    };
    script.onerror = function() {
      console.error('侧边按钮组脚本加载失败');
    };
    document.head.appendChild(script);
  }
  
  // 加载数字增长效果脚本
  function loadCounterScript() {
    const script = document.createElement('script');
    script.src = `${basePath}js/counter.js`;
    script.onload = function() {
      console.log('数字增长效果脚本加载成功');
    };
    script.onerror = function() {
      console.error('数字增长效果脚本加载失败');
    };
    document.head.appendChild(script);
  }
  
  // 直接调用加载函数，因为initApp已经在DOMContentLoaded中执行
  loadSideActions();

// 首页特有的功能
console.log('当前页面路径:', window.location.pathname);
if (window.location.pathname === '/' || window.location.pathname.endsWith('/index.html')) {
  console.log('检测到首页，准备加载数字增长效果脚本');
  loadCounterScript();
  
  // 首页特有功能，如数字增长效果等
  // 添加延迟确保DOM完全加载后再初始化手风琴效果，默认展开第一个案例
  setTimeout(function() {
    if (typeof initSuccessCasesAccordion === 'function') {
      initSuccessCasesAccordion();
      console.log('首页成功案例手风琴效果初始化完成');
    }
  }, 300);
} else {
  console.log('非首页，跳过数字增长效果脚本加载');
}
}

function loadComponents(basePath) {
  // 首先加载导航栏
  fetch(`${basePath}components/navbar.html`)
    .then(response => {
      if (!response.ok) {
        console.error('导航栏加载失败，状态码:', response.status);
        return '';
      }
      return response.text();
    })
    .then(navbarHtml => {
      if (navbarHtml) {
        // 替换基础路径占位符
        navbarHtml = navbarHtml.replace(/__BASE_PATH__/g, basePath);
        
        // 设置当前页面的活动状态
        const currentPage = window.location.pathname.split('/').pop();
        console.log('当前页面:', currentPage);
        
        if (currentPage === 'index.html' || currentPage === '') {
          navbarHtml = navbarHtml.replace(/class="__HOME_ACTIVE__"/, 'class="active"');
        } else if (currentPage === 'about.html') {
          navbarHtml = navbarHtml.replace(/class="__ABOUT_ACTIVE__"/, 'class="active"');
        } else if (currentPage === 'products.html') {
          navbarHtml = navbarHtml.replace(/class="__PRODUCTS_ACTIVE__"/, 'class="active"');
        } else if (currentPage === 'news.html') {
          navbarHtml = navbarHtml.replace(/class="__NEWS_ACTIVE__"/, 'class="active"');
        } else if (currentPage === 'contact.html') {
          navbarHtml = navbarHtml.replace(/class="__CONTACT_ACTIVE__"/, 'class="active"');
        }
        
        // 移除其他未使用的占位符
        navbarHtml = navbarHtml.replace(/class="__[A-Z_]+__"/g, '');
        
        // 优先插入到navbar-container中，如果不存在则插入到body开头
        const navbarContainer = document.getElementById('navbar-container');
        if (navbarContainer) {
          navbarContainer.innerHTML = navbarHtml;
          console.log('导航栏插入到container成功');
        } else if (document.body) {
          document.body.insertAdjacentHTML('afterbegin', navbarHtml);
          console.log('导航栏插入到body开头成功');
        }
      }
      
      // 加载页脚
      return fetch(`${basePath}components/footer.html`);
    })
    .then(response => {
      if (!response.ok) {
        console.error('页脚加载失败，状态码:', response.status);
        return '';
      }
      return response.text();
    })
    .then(footerHtml => {
      if (footerHtml) {
        // 替换基础路径占位符
        footerHtml = footerHtml.replace(/__BASE_PATH__/g, basePath);
        
        // 插入页脚到body的末尾
        if (document.body) {
          document.body.insertAdjacentHTML('beforeend', footerHtml);
          console.log('页脚插入成功');
        }
        
        // 初始化最基本的页面功能
        initBasicFunctions();
      }
    })
    .catch(error => {
      console.error('加载组件时出错:', error);
      // 即使加载失败，也尝试初始化基本功能
      initBasicFunctions();
    })
    .finally(() => {
      // 移动端导航脚本已移除
    });
}

function initBasicFunctions() {
  console.log('初始化基本功能');
  
  // 添加微小延迟，确保DOM完全更新
  setTimeout(function() {
    console.log('延迟执行初始化');
    
    // 处理固定导航栏的页面内容边距
    initFixedNavbar();
    
    // 移动端导航已在app.js开始时优先初始化，此处不再重复初始化
    console.log('移动端导航已优先初始化');
    
    // 免费试算功能由trial-form.js提供
    console.log('免费试算功能由trial-form.js处理');
    
    // 简单的平滑滚动功能
    try {
      var anchorLinks = document.querySelectorAll('a[href^="#"]');
      for (var i = 0; i < anchorLinks.length; i++) {
        (function(link) {
          link.onclick = function(e) {
            e.preventDefault();
            var targetId = this.getAttribute('href');
            if (targetId === '#') return;
            
            var targetElement = document.querySelector(targetId);
            if (targetElement) {
              window.scrollTo({
                top: targetElement.offsetTop - 80,
                behavior: 'smooth'
              });
            }
          };
        })(anchorLinks[i]);
      }
      console.log('平滑滚动功能初始化完成');
    } catch (e) {
      console.error('初始化平滑滚动功能时出错:', e);
    }
    
    console.log('所有基本功能初始化完成');
    
    // 首页手风琴效果已在首页特有逻辑中通过延迟初始化，此处不再重复调用
  }, 100); // 100毫秒延迟
}

// 初始化固定导航栏相关功能
function initFixedNavbar() {
  try {
    console.log('初始化固定导航栏功能');
    
    // 获取导航栏元素
    const header = document.querySelector('.header');
    if (!header) {
      console.log('未找到导航栏元素，跳过固定导航栏初始化');
      return;
    }
    
    // 获取导航栏高度
    const headerHeight = header.offsetHeight;
    console.log('导航栏高度:', headerHeight);
    
    // 为主要内容区域添加上边距，避免被固定导航栏遮挡
    const mainContent = document.querySelector('.banner') || document.querySelector('main') || document.querySelector('body > *:not(.header):not(#navbar-container)');
    if (mainContent) {
      console.log('为主要内容区域添加上边距');
      // 检查是否已经设置了上边距，避免重复设置
      if (!mainContent.style.marginTop || parseInt(mainContent.style.marginTop) !== headerHeight) {
        mainContent.style.marginTop = `${headerHeight}px`;
      }
    }
    
    console.log('固定导航栏功能初始化完成');
  } catch (e) {
    console.error('初始化固定导航栏功能时出错:', e);
  }
}